編寫Windows相容的C++程式碼,需要遵循一些基本原則和注意事項,以確保程式碼可以在Windows上正常執行。
使用標準C++程式庫:
使用標準C++程式庫,而不是特定於操作系統的程式庫。這將確保程式碼在不同平台上都能正常執行。(除非有明確的跨平台解決方案)
處理文字大小寫:
Windows文件系統是不區分大小寫,但Ubuntu通常是區分大小寫。
文件路徑分隔符:
Windows使用反斜線('')作為文件路徑分隔符,而Ubuntu使用正斜線('/')。
// Windows上的路徑
std::string filePath = "C:\Users\User\file.txt";
// Linux/Ubuntu上的路徑
std::string filePath = "/home/user/file.txt";
行結束符:
Windows使用回車符('\r')和換行符('\n')來表示行結束,而Ubuntu使用換行符('\n')。
// Windows行結束符
std::string windowsText = "Hello\r\nWorld";
// Ubuntu行結束符
std::string linuxText = "Hello\nWorld";
注意字串長度:
字串的大小由編譯器和操作系統決定,並且在不同的編譯器和平台之間可能有所不同。
Windows wchar_t 通常是 2 個字節,表示為 16 位的寬字符。
Linux 上的 GCC,wchar_t 通常是 4 個字節,表示為 32 位的寬字符。
由於這種大小差異,跨平台的 C++ 代碼中需要小心處理 wchar_t。
建議使用char16_t 和 char32_t確保固定大小的寬字符。